package com.shujujiegou.判断一个字符串中的字符包括空字符是否成对;

import java.util.*;

public class Test {
    public static boolean isPalindrome(String s) {
        Set<Integer> setChar = new HashSet<Integer>();
        List<Integer> listChar = new ArrayList<Integer>();
        char[] charArray = s.toCharArray();
        for(char item : charArray) {
            if(isIllegal(item)) {

                listChar.add(Integer.valueOf(String.valueOf(item).toUpperCase().charAt(0)));
                setChar.add(Integer.valueOf(String.valueOf(item).toUpperCase().charAt(0)));
            }
        }

        for(Integer item : setChar) {
            int count = 0;
            for(Integer element : listChar) {
                if(element == item) {
                    count++;
                }
            }

            if(count % 2 != 0) {
                return false;
            }
        }

        return true;
    }

    public static boolean isIllegal(char item) {
        int value = Integer.valueOf(item);
        if(value == 32) {
            return true;
        }

        if(value >= 97 && value <= 122) {
            return true;
        }

        if(value >= 65 && value <= 90) {
            return true;
        }

        return false;
    }

    public static void main(String[] nums) {
        System.out.println(isPalindrome("A man, a plan, a canal: Panama"));
    }
}
